package principale.presentation.gui.interfacciaGraficaPura;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SpringLayout;

import principale.main.Main;
import principale.presentation.gui.operazioniLogiche.AscoltatoreButtonLogin;
import principale.presentation.gui.operazioniLogiche.AscoltatoreComboBox;
import principale.presentation.gui.operazioniLogiche.AscoltatoreTesto;
import principale.presentation.gui.operazioniLogiche.ConfermaCancellaAscoltatore;
import principale.utility.SpringUtilities;

public class LoginGUI {
	private static JFrame frame;
	private JPanel p;
	private String[] datiLogin={"",""};
	private static String testoComboBox="File";

	protected void creaPannello() {
		p = new JPanel(new SpringLayout());
		JLabel l = new JLabel("Username", JLabel.TRAILING);
		p.add(l);
		JTextField casellaDiTesto = new JTextField(25);
		l.setLabelFor(casellaDiTesto);
		casellaDiTesto.getDocument().addDocumentListener(new AscoltatoreTesto(0,datiLogin));
		p.add(casellaDiTesto);
		
		l = new JLabel("Password", JLabel.TRAILING);
		p.add(l);
		JPasswordField casellaDiPassword = new JPasswordField(25);
		l.setLabelFor(casellaDiPassword);
		casellaDiPassword.getDocument().addDocumentListener(new AscoltatoreTesto(1,datiLogin));
		p.add(casellaDiPassword);
		
		l= new JLabel("Tipo salvataggio: ", JLabel.TRAILING);
		String[] comboBoxLabel={"File","Database"};
		JComboBox combo=new JComboBox(comboBoxLabel);
		combo.setSelectedIndex(0);
		combo.addItemListener(new AscoltatoreComboBox());
		JButton loginButton=new JButton("Login");
		loginButton.addActionListener(new AscoltatoreButtonLogin(AscoltatoreButtonLogin.LOGIN,datiLogin));
		JButton chiudiButton=new JButton("Chiudi");
		chiudiButton.addActionListener(new AscoltatoreButtonLogin(AscoltatoreButtonLogin.CHIUDI,datiLogin));
		p.add(l);
		p.add(combo);
		p.add(loginButton);
		p.add(chiudiButton);
		//Lay out the panel.
		SpringUtilities.makeCompactGrid(p,
				4, 2, //rows, cols
				8, 8,        //initX, initY
				8, 8);       //xPad, yPad
		p.setOpaque(true);  //content panes must be opaque
	}
	
	public void mostraGUI() {
		frame=new JFrame("Login");
		creaPannello();
		frame.add(p);
		frame.pack();
		Main.centralizzaFinestra(frame);
		frame.setVisible(true);
	}
	
	public static JFrame getFrame() {
		return frame;
	}
	
	public static void chiudiGUI() {
		frame.dispose();
	}
	
	public static void setTestoComboBox(String testo) {
		testoComboBox=testo;
	}
	
	public static String getTestoComboBox() {
		return testoComboBox;
	}
}
